package Problem5;

/**
 * 这个题要求找出最长回文子串
 * 遍历String中的元素，以其为基准点，向左右寻找。 就像这样  <-- a <-- b --> a -->
 * 要注意回文字串有单双数，如 aba 或 abba 字儿种情况就将其基准点设置为中间的两个a
 */
class Solution {

    private int Max , Play;

    public String longestPalindrome(String s) {
        if (s.length() < 2) {
            return s;
        }
        for (int i = 0 ; i < s.length()-1 ; i++) {
            judgement(s, i, i); // 对应单数的情况  如 abcba
            judgement(s, i, i+1); //对应偶数的情况 如 abccba
        }
        return s.substring(Play , Play+Max);
    }

    /**
     * 判定方法
     */
    public void judgement ( String s , int left , int right){
        while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)){
            left--;
            right++;
        }
        if (Max < right-left-1){
            Play = left+1;
            Max = right-left-1;
        }
    }
}